/* Copyright (c) 2012 The Chromium Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ tree { display: block; outline: none; overflow: auto; } .tree-item > .tree-row { -webkit-user-select: none; background-color: rgba(255, 255, 255, 0); border: 1px solid rgba(255, 255, 255, 0); /* transparent white */ border-radius: 2px; color: black; cursor: default; line-height: 28px; padding: 0 3px; position: relative; white-space: nowrap; } .expand-icon { -webkit-transform: rotate(-90deg); -webkit-transition: all 150ms; background-image: -webkit-canvas(tree-triangle); background-position: 50% 50%; background-repeat: no-repeat; display: inline-block; height: 16px; opacity: .6; position: relative; top: 6px; vertical-align: top; width: 16px; } html[dir=rtl] .expand-icon { -webkit-transform: rotate(90deg); } .tree-item[expanded] > .tree-row > .expand-icon { -webkit-transform: rotate(0); background-image: -webkit-canvas(tree-triangle); opacity: .5; } .tree-row .expand-icon { visibility: hidden; } .tree-row[may-have-children] .expand-icon { visibility: visible; } .tree-row[has-children=false] .expand-icon { visibility: hidden; } .tree-row:hover { background-color: hsl(214, 91%, 97%); border-color: hsl(214, 91%, 85%); z-index: 1; } /* WebKit has a bug with attribute selectors so we apply selected to the tree row as well. https://bugs.webkit.org/show_bug.cgi?id=12519 */ .tree-row[selected] { background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.8), rgba(255,255,255,0)); } .tree-row[selected] { background-color: hsl(0, 0%, 90%); border-color: hsl(0, 0%, 85%); z-index: 2; } .tree-row[selected]:hover, tree:focus .tree-row[selected] { background-color: hsl(214, 91%, 89%); border-color: rgb(125, 162, 206); } .tree-children[expanded] { display: block; } .tree-children { display: none; } .tree-item > .tree-row > * { box-sizing: border-box; display: inline-block; } .tree-label { -webkit-padding-start: 20px; background-position: 0 50%; background-repeat: no-repeat; white-space: pre; } html[dir=rtl] .tree-label { background-position: 100% 50%; } html[dir=rtl] .tree-label, html[dir=rtl] .tree-row[may-have-children] > .tree-label { background-image: -webkit-image-set( url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAABTElEQVQ4y2P8//8/A7UA44AZ1pTokAakZmKRSq+bf2AWqYb9D4/xY1BQ1wXzv379CqandExgABrGiGEYHtsZZCT5GUwMZBj+MXGA+f//M4HpE5ffM7x+fCcd3bD/QMMYSkrjGdhE5aEBwQhCDBACRAFpRrgUA5gDRM35dQxYDSuOMWXgVjeBiDAxAxUzMfwH0xA2AxMThAZhoEn/mVgYWgrq8RimoAy1nhliIFADCP9n4YKKIQz8D/R2SxE+w8RFICLsPFDXQF0GNZQBaOh/qKv/sfAwtBY34DFMVBAhysELDSCoF0GGMQIxKzfYkj8sggxtZY1EGgZ2ITc0sGEY6kpWXobfbKIM7RXNJBgGN5ABKSqBmI2f4RebFENHdQsdDMsMNWDgYmclOmd8+/mbYfrqC5iGbV05j+HsjkXk5PN0bHmT3GKEkXHQlmcAl2ySIdjFZKwAAAAASUVORK5CYII=') 1x); } html[dir=rtl] .tree-item[expanded] > .tree-row > .tree-label { background-image: -webkit-image-set( url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAMAAACO0hVbAAAAwFBMVEX///+BYD+BYD////////+BYD+WfWOafFedeU60qJ3OqnTPq3LRqWrYvI3k0qXqtW/t2K/0vHT11Z7447r76r376r776778zYP80oz804787L787b/9zoT97sD978D98MD+56/+6LL+6rT+7Lj+7rz+8MD+8MH+8cH/0YX/04j/2JD/2JH/2ZH/2ZL/2pP/2pT/2pX/25b/3Jf/3Zn/3Zr/3pv/3pz/353/35//36H/4KD/4aH/4qT/46X/5Kr/5q6i47suAAAABXRSTlMAPmZ/gNva2KgAAACaSURBVBgZjcGxbsJQDIbRz7+tm4iKDXVg4f1fClWqGLpWAiIl124YKBk5B95jvMhZ9QxefGx0rhms5Dx4TRQmA1x7oTBkDGbnsBBceRo+Z8LZDXBEHvo2u1QSPNSd1hc/yi+/DU/NfphGumX2zNM5pmD18wHMMi2+AE5qbj4CZZXVT18lKJjYMsC1E//yZoC3hY1urJytzpv+AJVcNCNrmLQ3AAAAAElFTkSuQmCC') 1x); } tree[icon-visibility=hidden] .tree-label { -webkit-padding-start: 0; background-image: none !important; } tree[icon-visibility=parent] .tree-label, tree[icon-visibility=parent] .tree-row[has-children=false] > .tree-label { background-image: none; } .tree-label, .tree-row[may-have-children] > .tree-label { background-image: -webkit-image-set( url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAYAAAC5DOVpAAABNklEQVQ4y2P5//8/A7UACwMVAdiwpkSHNCA1E4t8et38A7NIddnMnIoCMIObmxtMP7h5mWHlkk0gC4g3DOQqUVkVhoeXjoIFGBn/gWmmfz8YZCT5Qa7GFagYrga5bGZGSRwDA1jLfwZ4fABpbRco5z9UHCr56/VDhp7uhTOhQcOI4k1QjDL++wM2gfE/0GUg/O8flP0XKPcXKvYXrOnn82t4wgzkM5BhSAaBDfnzDSIOxn/BYgQjAOyyv7/BBoFdgWwIyACYy35+IcKwvyDDfkE0/f4KFIC55h/E2aCw+vGZuKTxH6TpD9Cw358RrgEZAAl1oIu+Ep/OQC5jALnszw+IZuQsRqRBtMlOHy9sYeBiZyVa07efv3Ealj599YWZpLrC2CMO0zBolphJps8YsYUZ46ArzwDWgLJTS2LvKwAAAABJRU5ErkJggg==') 1x); } .tree-item[expanded] > .tree-row > .tree-label { background-image: -webkit-image-set( url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAMAAACO0hVbAAAAwFBMVEX///+BYD+BYD////////+BYD+WfWOafFedeU60qJ3OqnTPq3LRqWrYvI3k0qXqtW/t2K/0vHT11Z7447r76r376r776778zYP80oz804787L787b/9zoT97sD978D98MD+56/+6LL+6rT+7Lj+7rz+8MD+8MH+8cH/0YX/04j/2JD/2JH/2ZH/2ZL/2pP/2pT/2pX/25b/3Jf/3Zn/3Zr/3pv/3pz/353/35//36H/4KD/4aH/4qT/46X/5Kr/5q6i47suAAAABXRSTlMAPmZ/gNva2KgAAACXSURBVBgZjcExbsJAEIbRb3bHTdLQRxS5Qhruf5lIUDoW8m52/sFCwnLJe/Aeo1Q2IXZO/aTSV7HzYh3DKk8hwOt3ZiNFDqE/C3DW6dZ4KcU1HGX7yjxrhPiFtlRHM+dQC6mTxsbp86VFSPkPnK5LDgfuEakUMF3ZOPPPkgKxCZYcFI5WSLDpo7DTXQFWKgfeA4zKUfC+BzxSVLh3XQHpAAAAAElFTkSuQmCC') 1x); } /* We need to ensure that even empty labels take up space */ .tree-label:empty::after { content: ' '; white-space: pre; } .tree-rename > .tree-row > .tree-label { -webkit-user-modify: read-write-plaintext-only; -webkit-user-select: auto; background: white; color: black; outline: 1px solid black; } .tree-item[editing] input { /* Do not inherit the line-height */ font-family: inherit; font-size: inherit; font-weight: inherit; margin: -2px -8px -2px -3px; outline: none; padding: 1px 7px 1px 1px; } html[dir=rtl] .tree-item[editing] input { margin: -2px -3px -2px -8px; padding: 1px 1px 1px 7px; }